C语言中有一道题目:已知"int a=4,b=5,c;",则执行表达式"c=a=a>b...答:A, a=0 = 是由右向左运算的,a>b值为false,值为0 所以c=a=0 另外也可以写程序验证:include <stdio.h> int main(void){ int a=4,b=5,c;c=a=a>b;printf("a:%d, b:%d, c:%d\n",a,b,c);return 0;}
C语言中 int a=5,b=-3,c=4;printf("%d %d",(++a,b++,b++),b++);为 ...答:int a=5,b=-3,c=4;printf("%d %d",(++a,b++),b++);它的等效程序化简过程如下:(++a,b++),它的最终结果去看它的第二个表达式 b++; ++a,可以去除,因此得到:printf("%d %d", b++, b++);在根据“先使用后计算的原则”再化简为:printf("%d %d", b, b);b = b+1;b ...
c语言题 int a=1,b=2,c=3,d=4,e=5; k=a>b?c:d>e?d:e;求k答:a>b?c:d>e?d:e); return 0;}运行结果:5 include <stdio.h>int main(void){ int a=1,b=2,c=3,d=4,e=5; printf("%d\n",a<b?c:d>e?d:e); return 0;}运行结果:3从第二个小程序的运行结果可以看出,确实是先判断d>e,再判断a<b,最后结果取c的值。